import http from '../request.js'
import { API_ENDPOINTS } from '../config.js'

/**
 * 轮播图API类
 */
class BannerAPI {
	/**
	 * 获取启用的轮播图列表
	 */
	async getActiveBanners(retryCount = 0) {
		try {
			const response = await http.request({
				url: API_ENDPOINTS.BANNER.ACTIVE,
				method: 'GET'
			})
			
			// 检查是否需要重试（token刷新后）
			if (response.needRetry && retryCount < 1) {
				console.log('🔄 Token已刷新，重新获取轮播图...')
				return await this.getActiveBanners(retryCount + 1)
			}
			
			if (response.code === 200) {
				return response.data || []
			} else {
				console.error('获取轮播图失败:', response.message)
				return []
			}
		} catch (error) {
			console.error('轮播图接口请求失败:', error)
			// 返回空数组，让前端使用降级方案
			return []
		}
	}
	
	/**
	 * 获取轮播图列表（管理端使用）
	 */
	async getBannerList(params = {}) {
		try {
			const response = await http.request({
				url: API_ENDPOINTS.BANNER.LIST,
				method: 'GET',
				data: params
			})
			
			if (response.code === 200) {
				return response.data
			} else {
				throw new Error(response.message || '获取轮播图列表失败')
			}
		} catch (error) {
			console.error('获取轮播图列表失败:', error)
			throw error
		}
	}
}

// 创建实例并导出
const bannerAPI = new BannerAPI()
export default bannerAPI 